package com.woniuxy.ssm.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

/**
 * @author linke
 * @version 1.0
 * @className: ManagerController
 * @description: manager 控制器
 * @date 2021/11/18 11:08
 * @Controller 注册到Spring容器中，并非昨日的bean标签 id =”/first“
 * 仅仅只是在Spring中注册一个bean，名字叫做rbacManagerController,我们可以通过getBean获取到
 * 一级路由地址  localhost:8080/manager/*
 */
@Controller
@RequestMapping("/manager")
public class ManagerController {
        /**
         * 第一个普通访问写法
         *
         * @return
         */
        @RequestMapping("/findOne")
        public ModelAndView findOne(){
            ModelAndView modelAndView = new ModelAndView();
            modelAndView.addObject("msg","第一个普通访问写法");
            modelAndView.setViewName("/index.jsp");
            return modelAndView;
        }

    /**
     * RequestMethod.GET 指定访问类型
     * 访问写法
     * @return
     */
    @RequestMapping(path = "/findTwo",method = RequestMethod.GET)
        public ModelAndView findTwo(){
            ModelAndView modelAndView = new ModelAndView();
            modelAndView.addObject("msg","指定访问类型为get 的写法");
            modelAndView.setViewName("success");
            return modelAndView;
        }

    /**
     * 串联式写法，多个路径都可以访问到当前资源
     *
     * @return
     */
    @RequestMapping({"/first","/second"})
        public ModelAndView first() {
            ModelAndView modelAndView = new ModelAndView();
            modelAndView.addObject("msg","我的{\"/first\",\"/second\"}方法进入了");
            modelAndView.setViewName("success");
            return modelAndView;
        }

    /**
     * 不推荐使用
     *
     * *号占位符 只要以third结尾的路径都可以访问
     *  localhost:8080/manager/aslidfjklasjdfiljaosildjfljthird
     *   问号占位符 只能写一个字符，而且必须存在一个字符   third就无法访问了
     *
     *   一起会有冲突
     * @return
     */
        @RequestMapping({"/*third","/?third"})
        public ModelAndView third() {
            ModelAndView modelAndView = new ModelAndView();
            modelAndView.addObject("msg","我的/**号占位符 只要以third结尾的路径都可以访问/问号占位符 只能写一个字符，而且必须存在一个字符   third就无法访问了");
            modelAndView.setViewName("/index.jsp");
            return modelAndView;
        }


    /**
     * 不推荐使用
     *
     * 中间层 通配符 中间可以随便填写
     * localhost:8080/manager/fasdfasdfa/third1
     * @return
     */
        @RequestMapping("/*/third1")
        public ModelAndView third1() {
            ModelAndView modelAndView = new ModelAndView();
            modelAndView.addObject("msg","我的/*/中间层 通配符 中间可以随便填写");
            modelAndView.setViewName("/index.jsp");
            return modelAndView;
        }

    /**
     * 不推荐使用
     *
     * 中间可以是多层级，任意字符的写法
     * localhost:8080/manager/任意层级/任意字符/third2
     * @return
     */

        @RequestMapping("/**/third2")
        public ModelAndView third2() {
            ModelAndView modelAndView = new ModelAndView();
            modelAndView.addObject("msg","我的/**/中间可以是多层级，任意字符的写法");
            modelAndView.setViewName("/index.jsp");
            return modelAndView;
        }

}
